// 为现有用户添加9位数字ID的脚本
// 在微信开发者工具控制台中运行

// 生成9位数字ID
function generateNumericId() {
  const timestamp = Date.now().toString().slice(-4) // 取时间戳后4位
  const random = Math.floor(Math.random() * 10000).toString().padStart(4, '0') // 4位随机数
  return `1${timestamp}${random}`
}

// 检查9位数字ID是否已存在
async function checkNumericIdExists(numericId) {
  const db = wx.cloud.database()
  const result = await db.collection('users').where({
    numericId: numericId
  }).count()
  
  return result.total > 0
}

// 为现有用户添加numericId
async function updateExistingUsers() {
  const db = wx.cloud.database()
  
  try {
    console.log('开始为现有用户添加9位数字ID...')
    
    // 获取所有没有numericId的用户
    const usersResult = await db.collection('users').where({
      numericId: db.command.exists(false)
    }).get()
    
    console.log(`找到 ${usersResult.data.length} 个需要更新的用户`)
    
    for (let i = 0; i < usersResult.data.length; i++) {
      const user = usersResult.data[i]
      
      // 生成唯一的9位数字ID
      let numericId
      let attempts = 0
      const maxAttempts = 5
      
      do {
        numericId = generateNumericId()
        attempts++
        
        if (attempts > maxAttempts) {
          console.error(`为用户 ${user._id} 生成唯一ID失败`)
          continue
        }
      } while (await checkNumericIdExists(numericId))
      
      // 更新用户记录
      await db.collection('users').doc(user._id).update({
        data: {
          numericId: numericId,
          updateTime: new Date()
        }
      })
      
      console.log(`用户 ${user.nickName || user._id} 的9位数字ID已更新为: ${numericId}`)
    }
    
    console.log('✅ 所有用户的9位数字ID已更新完成')
    
    // 验证更新结果
    const updatedResult = await db.collection('users').where({
      numericId: db.command.exists(true)
    }).count()
    
    console.log(`📊 数据库中现在有 ${updatedResult.total} 个用户拥有9位数字ID`)
    
  } catch (error) {
    console.error('❌ 更新用户ID失败:', error)
  }
}

// 运行更新脚本
console.log('🚀 准备更新现有用户的9位数字ID...')
console.log('请运行: updateExistingUsers()') 